58bc82
@@ -86,15 +86,15 @@
public class OAuthProviderBeanDefinitionParser implements BeanDefinitionParser {
     if (StringUtils.hasText(callbackUrlParam)) {
       successfulAuthenticationHandler.addPropertyValue("callbackParameterName", callbackUrlParam);
     }
-    
+
     // create a AuthenticationFailureHandler
-    BeanDefinitionBuilder simpleUrlAuthenticationFailureHandler = BeanDefinitionBuilder.rootBeanDefinition(SimpleUrlAuthenticationFailureHandler.class);
+    BeanDefinitionBuilder failedAuthenticationHandler = BeanDefinitionBuilder.rootBeanDefinition(SimpleUrlAuthenticationFailureHandler.class);
     String authenticationFailedURL = element.getAttribute("authentication-failed-url");
     if (StringUtils.hasText(authenticationFailedURL)) {
-      simpleUrlAuthenticationFailureHandler.addConstructorArgValue (authenticationFailedURL);
+      failedAuthenticationHandler.addConstructorArgValue (authenticationFailedURL);
     }
     else {
-      simpleUrlAuthenticationFailureHandler.addConstructorArgValue ("/");
+      failedAuthenticationHandler.addConstructorArgValue ("/");
     }
 
     String tokenIdParam = element.getAttribute("token-id-param");
@@ -165,6 +165,11 @@
public class OAuthProviderBeanDefinitionParser implements BeanDefinitionParser {
     parserContext.getRegistry().registerBeanDefinition(oauthSuccessfulAuthenticationHandlerRef, successfulAuthenticationHandler.getBeanDefinition());
     authenticateTokenFilterBean.addPropertyReference("authenticationSuccessHandler", oauthSuccessfulAuthenticationHandlerRef);
 
+    // register the failure handler with the UserAuthorizationFilter
+    String oauthFailedAuthenticationHandlerRef = "oauthFailedAuthenticationHandler";
+    parserContext.getRegistry().registerBeanDefinition(oauthFailedAuthenticationHandlerRef, failedAuthenticationHandler.getBeanDefinition());
+    authenticateTokenFilterBean.addPropertyReference("authenticationFailureHandler", oauthFailedAuthenticationHandlerRef);
+
     List<BeanMetadataElement> filterChain = ConfigUtils.findFilterChain(parserContext, element.getAttribute("filter-chain-ref"));
     int index = insertIndex(filterChain);
     parserContext.getRegistry().registerBeanDefinition("oauthRequestTokenFilter", requestTokenFilterBean.getBeanDefinition());
